<?php
error_reporting(E_ALL);
set_time_limit(0);

date_default_timezone_set('Europe/London');
?>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

        <title>PHPExcel Reading WorkBook Data Example #03</title>

    </head>
    <body>

        <h1>PHPExcel Reading WorkBook Data Example #03</h1>
        <h2>Read Custom Property Values for a WorkBook</h2>
        <?php
        /** Include path * */
        set_include_path(get_include_path() . PATH_SEPARATOR . '../../../Classes/');

        /** PHPExcel_IOFactory */
        include 'PHPExcel/IOFactory.php';


        $inputFileType = 'Excel2007';
        $inputFileName = './sampleData/example1.xlsx';

        /**  Create a new Reader of the type defined in $inputFileType  * */
        $objReader = PHPExcel_IOFactory::createReader($inputFileType);
        /**  Load $inputFileName to a PHPExcel Object  * */
        $objPHPExcel = $objReader->load($inputFileName);


        echo '<hr />';

        /**  Read an array list of any custom properties for this document  * */
        $customPropertyList = $objPHPExcel->getProperties()->getCustomProperties();

        echo '<b>Custom Properties: </b><br />';
        /**  Loop through the list of custom properties  * */
        foreach ($customPropertyList as $customPropertyName) {
            echo '<b>', $customPropertyName, ': </b>';
            /**  Retrieve the property value  * */
            $propertyValue = $objPHPExcel->getProperties()->getCustomPropertyValue($customPropertyName);
            /**  Retrieve the property type  * */
            $propertyType = $objPHPExcel->getProperties()->getCustomPropertyType($customPropertyName);

            /**  Manipulate properties as appropriate for display purposes  * */
            switch ($propertyType) {
                case 'i' : //	integer
                    $propertyType = 'integer number';
                    break;
                case 'f' : //	float
                    $propertyType = 'floating point number';
                    break;
                case 's' : //	string
                    $propertyType = 'string';
                    break;
                case 'd' : //	date
                    $propertyValue = date('l, d<\s\up>S</\s\up> F Y g:i A', $propertyValue);
                    $propertyType = 'date';
                    break;
                case 'b' : //	boolean
                    $propertyValue = ($propertyValue) ? 'TRUE' : 'FALSE';
                    $propertyType = 'boolean';
                    break;
            }

            echo $propertyValue, ' (', $propertyType, ')<br />';
        }
        ?>
    <body>
</html>
